home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 038a / dframe26.zip / DFRAME.DOC next >
Text File  |  1992-02-17  |  60KB  |  1,155 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                D O O R F R A M E
  17.                                   Version 2.6
  18.  
  19.                         A BBS Doors Development Library
  20.  
  21.                             Copyright (c) 1990-1992
  22.                                 by Ted Freeman
  23.                              All rights reserved.
  24.  
  25.  
  26.                                Support board is:
  27.  
  28.                                MicroNet PCBoard
  29.                           615-626-1620 (Hayes ULTRA)
  30.  
  31.  
  32.  
  33. DOORFRAME v2.6 - Users Guide - Page i
  34.  
  35.  
  36.                                 C O N T E N T S
  37.                                =================
  38.  
  39.         Warranty ............................................ ii
  40.         Copyright notice .................................... ii
  41.         Distribution ........................................ ii
  42.         Description ......................................... ii
  43.         BOX ................................................. 1
  44.         CLREOL .............................................. 1
  45.         CLRSCRN ............................................. 2
  46.         DE.LAY .............................................. 2
  47.         DETECT.ANSI ......................................... 2
  48.         DIS.PLAY ............................................ 3
  49.         ENTER ............................................... 4
  50.         EXISTS .............................................. 4
  51.         EXIT.DOOR ........................................... 4
  52.         GETDRV .............................................. 4
  53.         GETEXECPATH ......................................... 4
  54.         GETSUB .............................................. 5
  55.         IN.PUT .............................................. 5
  56.         INITIALIZE .......................................... 5
  57.         LINES ............................................... 6
  58.         MAKE.BLT ............................................ 6
  59.         MAKE.BLT.CURRENT .................................... 6
  60.         MORE ................................................ 6
  61.         MUSIC ............................................... 7
  62.         OUT.PUT ............................................. 7
  63.         RINSTR .............................................. 7
  64.         SEND ................................................ 7
  65.         SHOW.BLT ............................................ 7
  66.         SUBEXIST ............................................ 7
  67.         COLOR TABLE ......................................... 8
  68.         CONFIGURATION FILE FORMAT ........................... 8
  69.         PCBOARD.SYS VARIABLES ............................... 9
  70.         USERS.SYS VARIABLES ................................. 11
  71.         DOOR.SYS VARIABLES .................................. 12
  72.         USERINFO.DAT VARIABLES .............................. 14
  73.         DORINFOx.DEF VARIABLES .............................. 14
  74.         CALLINFO.BBS VARIABLES .............................. 15
  75.         SFDOORS.DAT VARIABLES ............................... 17
  76.         CHAIN.TXT VARIABLES ................................. 19
  77.         MISCELLANEOUS NOTES ................................. 20
  78.  
  79.  
  80. DOORFRAME v2.6 - Users Guide - Page ii
  81.  
  82.  
  83.                                    Warranty
  84.  
  85.     This product is provided "as is" without warranty of any kind. The entire
  86.     risk as to the results and  performance of the program is assumed by you.
  87.     Futhermore, the  author does  not warrant, guarantee, or  make any  other
  88.     representations regarding  the use of,  or the  results of the use of the
  89.     program,  and you  rely on the  program and  results  solely at  your own
  90.     risk.  The author  cannot and  will not accept  responsibility for system
  91.     damage, loss of profit, or any other special, consequential or incidental 
  92.     damages  resulting  from  the  use  or  inability  to  use this  product.
  93.  
  94.                                    Copyright
  95.  
  96.     DOORFRAME Copyright (c) 1990-92 by  Ted Freeman  is being distributed as
  97.     Shareware. Under this concept you may use the  SHAREWARE  (unregistered)
  98.     version for a reasonable period of  time for evaluation  after which you
  99.     must either register your copy or discontinue  usage.
  100.  
  101.  
  102.                                  Distribution
  103.  
  104.     You  are encouraged to distribute DOORFRAME provided that all files
  105.     contained in the archive are distributed in their original and
  106.     unmodified state.
  107.  
  108.                                   Description
  109.  
  110.     
  111.     DOORFRAME is a subroutine library for developing online BBS Doors for
  112.     systems that are compatible with PCBOARD.SYS, USERS.SYS, DOOR.SYS,
  113.     CALLINFO.BBS, SFDOORS.DAT or DORINFOx.DEF for interfacing to the BBS.
  114.     DoorFrame was written for QUICKBASIC (tm) 4.5 and is not recommended for
  115.     use with earlier versions of the compiler. DoorFrame also utilizes some of
  116.     the routines contained in Tom Hanlin's PBClone library. The COM routines
  117.     are handled by the QBSerial I/O library.
  118.  
  119.  
  120. DOORFRAME v2.6 - Users Guide - Page 1
  121.  
  122.  
  123.                               DOORFRAME ROUTINES
  124.                              ====================
  125.  
  126. ------------------------------------------------------------------------------
  127. NOTE: 
  128. Since the subroutines are DECLAREd in DFRAME.INC (you DID $INCLUDE: it didn't 
  129. you?) you should not use the CALL statement. Type the name of the subroutine 
  130. and list it's parameters (if any) without the enclosing parentheses.
  131. For example:
  132.  
  133.  DIS.PLAY MSG$, FG%, BG%, BLINK%, BELL%, XPOS%, YPOS%, NL%, CENTER%, CAPS% 
  134.  
  135. The FUNCTIONs still require the enclosing parentheses.
  136. ------------------------------------------------------------------------------
  137.  
  138. SUBROUTINE: 
  139. BOX.IT (SROW%,SCOL%,EROW%,ECOL%,BTYPE%,BFG%,BBG%,FFG%,FBG%,FCHAR%,SHADOW%,TITLE$)
  140. PARAMETERS: SROW%    - ROW the box is to start at. Valid numbers are 1 - 22.
  141.                        Accepts an INTEGER number or variable.
  142.             SCOL%    - COLUMN the box is to start at. Valid numbers are 1 - 79.
  143.                        Accepts an INTEGER number or variable.
  144.             EROW%    - ROW the box is to end at. Valid numbers are 2 - 23.
  145.                        Accepts an INTEGER number or variable.
  146.             ECOL%    - COLUMN the box is to end at. Valid numbers are 2 - 80.
  147.                        Accepts an INTEGER number or variable.
  148.             BTYPE%   - Type of border. Accepts an INTEGER number or variable.
  149.                          0 = No border (spaces all the way around).
  150.                          1 = Single line all the way around.
  151.                          2 = Double line all the way around.
  152.                          3 = Double line on sides, single on top and bottom.
  153.                          4 = Single line on sides, double on top and bottom.
  154.             BFG%     - Foreground color of the border. (See color table)
  155.                        Accepts an INTEGER number or variable.
  156.             BBG%     - Background color of the border. (See color table)
  157.                        Accepts an INTEGER number or variable.
  158.             FFG%     - Foreground color of the box fill characters.
  159.                        Accepts an INTEGER number or variable.
  160.             FBG%     - Background color of the box fill characters.
  161.                        Accepts an INTEGER number or variable.
  162.             FCHAR%   - ASCII number of the character to fill box with.
  163.                        EX: 32 = SPACE, 65 = A, 206 = ╬
  164.             SHADOW%  - 1 = Shadow, 0 = no Shadow. This will put a Shadow
  165.                        on the right and bottom edges of the box.
  166.             TITLE$   - Displays a title centered on the top border.
  167.                        Accepts a STRING variable or QUOTED TEXT.
  168.  
  169. DESCRIPTION: Draws a BOX with various style borders. The inside of the
  170.              BOX may be filled with any ASCII character you choose. The
  171.              upper left corner of the screen is ROW 1, COLUMN 1 and the
  172.              bottom right is ROW 23, COLUMN 80.
  173.  
  174.  
  175.  
  176.  
  177. SUBROUTINE: CLREOL
  178. PARAMETERS: XPOS%, YPOS%, BGC%
  179. DESCRIPTION: Clears from the specified row and column to the end of that
  180.              line. The line is cleared in whatever color is specified in
  181.              the BGC% parameter.
  182.  
  183.  
  184. DOORFRAME v2.6 - Users Guide - Page 2
  185.  
  186.  
  187. SUBROUTINE: CLRSCRN
  188. PARAMETERS: None
  189. DESCRIPTION: Clears both the LOCAL (if ON) and REMOTE displays. This is the
  190.              only way you should do a clear screen.
  191.  
  192.  
  193. SUBROUTINE: DE.LAY (SEC%)
  194. PARAMETERS: SEC%, 1, 2, Etc.
  195. DESCRIPTION: Pauses your program for the number of seconds in SEC%. Accepts
  196.              INTEGER number or variable.
  197.  
  198.  
  199. SUBROUTINE: DETECT.ANSI
  200. PARAMETERS: None
  201. DESCRIPTION: This routine will determine if the remote system has ANSI
  202.              capability. If the remote system is ANSI compatible, the
  203.              GRAPHICS% variable will be set equal to -1 otherwise it is
  204.              set to 0. This routine does not control whether COLOR is used
  205.              or not, see the MODE% variable for that.
  206.  
  207.  
  208. DOORFRAME v2.6 - Users Guide - Page 3
  209.  
  210. SUBROUTINE: DIS.PLAY (MSG$,FG%,BG%,BLINK%,BELL%,XPOS%,YPOS%,NL%,CENTER%,CAPS%)
  211. PARAMETERS: MSG$     - Text to be printed in either variable or quoted form.
  212.                        Example: "Print this" or MSG$ = "Print this".
  213.  
  214.             FG%      - Foreground color (0 - 15) Of the text. Can be in
  215.                        INTEGER number or INTEGER variable form. 
  216.                        Example: FG% = 1, 1, BLUE (See Color Table)
  217.  
  218.             BG%      - Background color (0 - 7) of text otherwise same as FG%
  219.  
  220.             BLINK%   - Enter 1 for blinking text or 0 for normal text.
  221.                        Accepts INTEGER number or INTEGER variable.
  222.  
  223.             BELL%    - Enter 1 to sound a beep on the remote or 0 for no
  224.                        beep. Does not beep on the local computer.
  225.                        Accepts INTEGER number or INTEGER variable.
  226.  
  227.             XPOS%    - Row number for cursor positioning. Valid numbers
  228.                        are 0 - 23 (status line is on 24 - 25). Enter 0 to
  229.                        disable. Accepts INTEGER number or variable.
  230.                        NOTE: XPOS% is ignored when GRAPHICS% = 0.
  231.  
  232.             YPOS%    - Column number for cursor positioning. Valid numbers
  233.                        are 0 - 80. Enter 0 to disable. Accepts INTEGER number
  234.                        or INTEGER variable.
  235.                        NOTE: YPOS% is ignored when GRAPHICS% = 0.
  236.  
  237.             NL%      - Enter 1 to send a CR/LF at the end of the line. Enter
  238.                        0 to position the cursor after the last character.
  239.                        Accepts INTEGER number or INTEGER variable.
  240.  
  241.             CENTER%  - Enter 1 to center the line or 0 for no centering.
  242.  
  243.             CAPS%    - Enter 1 to convert text to all uppercase.
  244.                        Enter -1 to convert text to all lowercase.
  245.                        Enter 0 for no case conversion.
  246.                        Accepts INTEGER number or INTEGER variable.
  247.  
  248. DESCRIPTION: Displays text to both the Local (if on) and Remote screens.
  249.              Accepts the full ASCII charcter set (0 - 255). Supports ANSI
  250.              color and cursor positioning (XPOS%, YPOS%). DoorFrame features
  251.              auto-ANSI detection and will display in graphics mode if it
  252.              senses ANSI capability on the remote end.
  253.  
  254. ENHANCEMENTS: There are some special symbols available to make text blink
  255.              in the middle of a line in any color you wish. For example:
  256.  
  257.              DIS.PLAY "This will {Blink Yellow{", LWHITE, BLACK, 1, 0,......
  258.  
  259.              Note the {'s before and after Blink Yellow. They tell the routine
  260.              to display the text in between in yellow and blinks because 
  261.              BLINK% = 1. If BLINK% = 0 then the text is displayed in yellow
  262.              but does not blink. The rest of the line is displayed in white
  263.              on black. The symbols and their corresponding colors are:
  264.                 ~ = Blue,  ` = Green,  @ = Cyan,  ^ = Red,  | = Magenta
  265.                 { = Yellow and } = White.
  266.              Put a * in front of the first symbol to display in low intensity
  267.              colors. Ex: *}text} displays 'text' in low intensity white.
  268.              Please note that you must have called DETECT.ANSI before using
  269.              these symbols and you may use only one set per DIS.PLAY. See the
  270.              included DISPLAY.BAS file for examples on using this option.
  271.  
  272. DOORFRAME v2.6 - Users Guide - Page 4
  273.  
  274. SUBROUTINE: ENTER
  275. PARAMETERS: None
  276. DESCRIPTION: Outputs a "Press <ENTER> to Continue" prompt and waits for the
  277.              response. If the caller is in graphics mode, this is centered
  278.              on line 23. In non-graphics mode it is centered 2 lines below
  279.              the last line printed.
  280.  
  281.  
  282. FUNCTION: EXISTS (FILENAME$ + CHR$(0))
  283. PARAMETERS: ASCIIZ Filename
  284. DESCRIPTION: Checks to see if a file exists on disk. The passed parameter
  285.              MUST be an ASCIIZ filename (FILENAME$ + CHR$(0)). The function
  286.              returns 0 if the file exists or -1 if it does not.
  287.              Example: IF EXISTS (MYFILE$ + CHR$(0)) = 0 THEN
  288.                          PRINT "The file is there!"
  289.                       ELSE
  290.                          PRINT "File not found."
  291.                       END IF
  292.  
  293.  
  294. SUBROUTINE: EXIT.DOOR (YN$)
  295. PARAMETERS: YN$, "Y", "N", "G"
  296. DESCRIPTION: VERY IMPORTANT! Always call this subroutine as the last thing
  297.              your program does. EXIT.DOOR updates the system files with any
  298.              changes that have been made to system variables, closes the
  299.              files, etc. When your Door closes, DoorFrame displays:
  300.  
  301.                         Thank you for using (Door Name)
  302.  
  303.                      Please wait while (BBS NAME) reloads.
  304.  
  305.              You can toggle this ON, "Y" or OFF, "N" when you call EXIT.DOOR.
  306.              Accepts a STRING variable YN$ = "Y" or quoted text "Y".
  307.              If you wish to allow the caller to log off from your Door, call
  308.              EXIT.DOOR "G".
  309.  
  310. SUBROUTINE: GETDRV (DRIVE$)
  311. PARAMETERS: DRIVE$
  312. DESCRIPTION: Returns the current default drive. You must initialize the
  313.              parameter to at least one character. For example:
  314.                 DRIVE$ = " "  or DRIVE$ ="x"
  315.                 GETDRV DRIVE$
  316.              After the call, DRIVE$ will contain the default drive letter.
  317.  
  318.  
  319. SUBROUTINE: GETEXECPATH (PATHNAME$, PATHLEN%)
  320. PARAMETERS: PATHNAME$, PATHLEN%
  321. DESCRIPTION: Returns the full path of your program (drive, subdirectory and
  322.              name of program). PATHNAME$ must be initialized to at least 80
  323.              characters. The length of the PATH spec. is returned in the
  324.              variable PATHLEN%. Example:
  325.                 PATHNAME$ = SPACE$(80)
  326.                 GETEXECPATH PATHNAME$, PATHLEN%
  327.                 PATHNAME$ = LEFT$(PATHNAME$, PATHLEN%)
  328.  
  329.  
  330. DOORFRAME v2.6 - Users Guide - Page 5
  331.  
  332. SUBROUTINE: GETSUB1 (DRIVE$, SUBDIR$, SUBLEN%, ERRCODE%)
  333. PARAMETERS: DRIVE$
  334. DESCRIPTION: Returns the current subdirectory on the specified drive. You
  335.              must initalize SUBDIR$ to at least 65 characters. Example:
  336.                 SUBDIR$ = SPACE$(65)
  337.                 GETSUB1 "C", SUBDIR$, SUBLEN%, ERRCODE%
  338.                 SUBDIR$ = LEFT$(SUBDIR$, SUBLEN%)
  339.  
  340.              SUBDIR$ returns with the subdirectory (padded with spaces).
  341.              SUBLEN% will contain the length of the subdirectory path and
  342.              ERRCODE% will 0 if there was no error or non-zero if there was.
  343.  
  344. SUBROUTINE: IN.PUT (LENGTH%, WAITTIME%, IFG%, IBG%)
  345. PARAMETERS: LENGTH%   - Desired length of input. Accepts an INTEGER number
  346.                         or variable. 0 = any length.
  347.             WAITTIME% - Number of seconds to wait for input. If ENTER is not
  348.                         pressed before this times out, control is passed back
  349.                         to the calling routine and RESPONSE$ will contain "-1"
  350.                         You may also have wait times of less than 1 second.
  351.                         Try .005 for 1/18th of a second wait.
  352.             IFG%      - Foreground color of the caller's response (INTEGER).
  353.             IBG%      - Background color of the caller's response (INTEGER).
  354. DESCRIPTION: Gets a response from the caller which is returned in the variable
  355.              RESPONSE$. Passes ASCII characters in the range 32 - 127 and
  356.              ignores all others. The 1st parameter indicates the desired
  357.              length of the input. Pass 0 to accept any length. This feature
  358.              allows you to use HOT KEYS! If you are prompting for a Y/N you
  359.              could do something like:
  360.                 DIS.PLAY "Is everything correct? (y/n) " (+ your parameters)
  361.                 IN.PUT 1, 180, 12, 0
  362.                 IF UCASE$(RESPONSE$) = "Y" THEN  Etc., Etc.
  363.              As soon as the caller hit Y or N, the subroutine terminates
  364.              without his having to hit ENTER (however IN.PUT always returns
  365.              when ENTER is pressed). Accepts an INTEGER number or variable.
  366.              The IN.PUT can also be used as a timed routine. In the example
  367.              above, The routine would wait for 180 seconds. if it does not
  368.              receive a keypress within that time, it returns to the calling
  369.              routine and RESPONSE$ would contain a "-1".
  370.              (See the enclosed EXINPUT.BAS for an example).
  371.  
  372.  
  373. SUBROUTINE: INITIALIZE
  374. PARAMETERS: None
  375. DESCRIPTION: VERY IMPORTANT! You MUST make a call to INITIALIZE before your
  376.              code does anything. This subroutine opens the system files and
  377.              obtains all the information you will need to run your Door. It
  378.              first reads the configuration file you passed on the command
  379.              line, then it reads PCBOARD.SYS, PCBOARD.DAT, and USERS (for 
  380.              PCBoard) or DOOR.SYS. There are 3 variables that must be
  381.              populated before the call to INITIALIZE. 
  382.                 PROGNAME$ = "Name of your Door"
  383.                 EXENAME$ = "FILENAM"
  384.                 VERSION$ = " v0.0"
  385.                 INITIALIZE
  386.              PROGNAME$ and VERSION$ are displayed on the Status line after
  387.              the callers name. EXENAME$ must be populated if you plan to use
  388.              the high score bulletin generator. EXENAME$ is the filename of
  389.              your program minus the .EXE extension.
  390.          ->  NOTE: EXENAME$ MUST BE NO MORE THAN 7 CHARACTERS!
  391.  
  392. DOORFRAME v2.6 - Users Guide - Page 6
  393.  
  394. SUBROUTINE: LINES (SROW%,SCOL%,LEN%,DIR$,ENDS%,MID%,EFG%,EBG%,MFG%,MBG%)
  395. PARAMETERS: SROW%    - Row the line starts at. Valid numbers are 1 - 22.
  396.                        Accepts an INTEGER number or variable.
  397.             SCOL%    - Column the line starts at. Valid numbers are 1 - 79.
  398.                        Accepts an INTEGER number or variable.
  399.             LEN%     - Length of the line. Max. of 23 for vertical, 80 horiz.
  400.                        Accepts an INTEGER number or variable.
  401.             DIR$     - "H" = horizontal. "V" = vertical. Accepts a STRING
  402.                        variable or quoted text.
  403.             ENDS%    - If you are placing the line inside a box, you can
  404.                        make the ends of the line match the box border.
  405.                        Accepts an INTEGER number or variable.
  406.                          0 = No ends. (straight line only)
  407.                          1 = Single line.
  408.                          2 = Double line.
  409.             MID%     - Type of line. 1 = Single line. 2 = Double line.
  410.                        Accepts an INTEGER number or variable.
  411.             EFG%     - Foreground color of the ends (see color table).
  412.                        Accepts an INTEGER number or variable.
  413.             EBG%     - Background color of the ends (see color table).
  414.                        Accepts an INTEGER number or variable.
  415.             MFG%     - Foreground color of the line (see color table).
  416.                        Accepts an INTEGER number or variable.
  417.             MBG%     - Background color of the line (see color table).
  418.                        Accepts an INTEGER number or variable.
  419. DESCRIPTION: Draws either a vertical or horizontal line at the specified
  420.              location. 
  421.  
  422.  
  423. SUBROUTINE: MAKE.BLT (HI.SCORE#)
  424. PARAMETERS: HI.SCORE#, 10, 10000, Etc.
  425. DESCRIPTION: This routine will write a hi-score bulletin listing the top ten
  426.              scores. The parameter passed must be double precision (#). This
  427.              routine creates a file called FILENAME.BUL. The first line of
  428.              this .BUL file indicates the path to the actual BLT file. It
  429.              initially writes FILENAME.BLT. If you wish to have a different
  430.              filename (such as BLT1) you must edit this line. The filename
  431.              for your BLT file should be 7 characters or less because
  432.              DoorFrame also writes a graphics BLT and appends a G to the
  433.              filename. (You should also explain this to your user Sysops!)
  434.  
  435.  
  436. SUBROUTINE: MAKE.BLT.CURRENT (HI.SCORE#)
  437. PARAMETERS: HI.SCORE#, 10, 10000, Etc.
  438. DESCRIPTION: Same as MAKE.BLT except it posts CURRENT scores rather than
  439.              highest scores.
  440.  
  441.  
  442. SUBROUTINE: MORE
  443. PARAMETERS: None
  444. DESCRIPTION: Outputs "Press <ENTER> to continue, or <E> to end" and waits
  445.              for a response. Check the variable RESPONSE$ for an "E" and
  446.              terminate the current routine if found. For example:
  447.                 MORE
  448.                 IF UCASE$(RESPONSE$) = "E" THEN
  449.                   Etc.. Etc.
  450.  
  451. DOORFRAME v2.6 - Users Guide - Page 7
  452.  
  453. SUBROUTINE: MUSIC (TUNE$)
  454. PARAMETERS: MUSIC CODES
  455. DESCRIPTION: Outputs music to the remote system. The TUNE$ parameter
  456.              contains the same codes you would normally use in the BASIC
  457.              PLAY statement. For example:
  458.               TUNE$ = "t110 l8 ms d4 mn o3 g a b o4 c ... "
  459.               MUSIC TUNE$
  460.              Since not all communications programs can handle music, you
  461.              should ask the user if he has music capabilities. If the
  462.              user can't handle music he will simply see the music codes
  463.              come across his screen (not a pretty sight!).
  464.  
  465.  
  466. SUBROUTINE: OUT.PUT (LF%)
  467. PARAMETERS: LF%, 1, 2, Etc.
  468. DESCRIPTION: Outputs the specified number of CR/LF. Parameter is an INTEGER
  469.              number or an INTEGER variable. Ex: OUT.PUT 2
  470.  
  471.  
  472. SUBROUTINE: RINSTR (MAINST$, SEEKST$, FOUND%)
  473. PARAMETERS: MAINST$, SEEKST$
  474. DESCRIPTION: Like INSTR, this routine tells your the position of a substring
  475.              within a string. A reverse search is used and tells you the
  476.              last match rather than the first match. Example:
  477.                 MAINST$ = "This is a test string"
  478.                 RINSTR MAINST$, "is", FOUND%
  479.              FOUND% will contain the position of the word "is" rather than
  480.              the last 2 letters of "This" as would be returned by INSTR.
  481.  
  482.  
  483. SUBROUTINE: SEND (FILENAME$, YN%, CLR%)
  484. PARAMETERS: FILENAME$ - STRING variable or quoted text of file to SEND.
  485.             YN%       - 0 = Do not use the ENTER prompt after last page.
  486.                         1 = Use the ENTER prompt after last page.
  487.             CLR%      - 0 = Home cursor, do not clear screen.
  488.                         1 = Normal clear screen.
  489. DESCRIPTION: Sends the specified filename. This can be either an ASCII file
  490.              or an ANSI file. SEND first checks for the existance of the file
  491.              and either sends the file or reports "File not Found!". This is
  492.              handy for displaying Help files, Welcome screens, etc.
  493.        NOTE: When using The Draw to create ANSI screens, save the screen using
  494.              the block mode (ALT-B) as this seems to produce better results
  495.              than using the regular save function (ALT-S).
  496.  
  497.  
  498. SUBROUTINE: SHOW.BLT (YN$)
  499. PARAMETERS: YN$, "Y", "N"
  500. DESCRIPTION: Call this routine if your Door features a Hi-score bulletin. Make
  501.              sure you have called MAKE.BLT first! Best place to call this
  502.              is just before you call EXIT.DOOR. For example:
  503.               MAKE.BLT HI.SCORE#
  504.               SHOW.BLT "Y"
  505.               EXIT.DOOR "Y"
  506.              SHOW.BLT "Y" will ask if they want to see the Bulletin.
  507.              SHOW.BLT "N" displays the bulletin without asking.
  508.  
  509.  
  510. SUBROUTINE: SUBEXIST (SUBDIR$, FOUND%)
  511. PARAMETERS: SUBDIR$, "C:\SUBDIR"
  512. DESCRIPTION: Tells you if a subdirectory actually exists. Pass a STRING
  513.              variable or quoted string. FOUND% will return with a zero if
  514.              the subdirectory doesn't exist or non-zero if it does.
  515.  
  516.  
  517. DOORFRAME v2.6 - Users Guide - Page 8
  518.  
  519.  
  520.                              C O L O R  T A B L E
  521.                             ======================
  522.  
  523. COLOR # - NAME       INTENSITY       FOREGROUND (FG%)     BACKGROUND (BG%)
  524. ---------------------------------------------------------------------
  525.  0 - BLACK              Low               X                   X
  526.  1 - BLUE                "                X                   X
  527.  2 - GREEN               "                X                   X
  528.  3 - CYAN                "                X                   X
  529.  4 - RED                 "                X                   X
  530.  5 - MAGENTA             "                X                   X
  531.  6 - YELLOW              "                X                   X
  532.  7 - WHITE               "                X                   X
  533.  8 - GRAY               High              X
  534.  9 - LBLUE               "                X
  535. 10 - LGREEN              "                X
  536. 11 - LCYAN               "                X
  537. 12 - LRED                "                X
  538. 13 - LMAGENTA            "                X
  539. 14 - LYELLOW             "                X
  540. 15 - LWHITE              "                X
  541.  
  542. The COLORs are defined as CONSTANT in the DFRAME.INC file so you may use
  543. either the actual color number, it's name or an INTEGER variable of your own
  544. choosing when CALLing the DIS.PLAY subroutine.
  545.  
  546.  
  547.                               CONFIGURATION FILE
  548.                               ==================
  549.  
  550. The format of the configuration file used by Doors created with DoorFrame is:
  551.  
  552. C:\PCB\PCBOARD.SYS              <- For PCBoard systems using PCBOARD.SYS only
  553. C|\PCB\USERS.SYS                <- For PCBoard systems using USERS.SYS
  554. C:\BBS\CALLINFO.BBS             <- For Wildcat! systems (prior to v3.0)
  555. C:\BBS\DOOR.SYS                 <- For systems that support DOOR.SYS
  556. C:\BBS\DORINFOx.DEF             <- For QBBS/RBBS/RA. Replace x with Node #.
  557. C:\BBS\SFDOORS.DAT              <- For Spitfire systems.
  558. MicroNet                        <- BBS name
  559. Ted                             <- Sysop's first name
  560. Freeman                         <- Sysop's last name
  561.   .                             <- The Configuration file is left open as #1
  562.   .                                so you may add whatever is necessary.
  563.  
  564. NOTE: DoorFrame supports COM 1-4 on the standard IRQ's - COM1/COM3 = IRQ4 and
  565.       COM2/COM4 = IRQ3. If you wish to use a non-standard IRQ, add the IRQ
  566.       number after the configuration filename. Let's assume your Door is
  567.       called FOOBAR and you want to use COM1 and IRQ5. The command line
  568.       passed to your Door would be:
  569.         FOOBAR FOOBAR.CFG /5
  570.       The /5 tells DoorFrame to use IRQ5 rather than the standard IRQ4 that
  571.       is normally used with COM1. No /x parameter is needed for the standard
  572.       IRQ's.
  573.  
  574.  
  575. DOORFRAME v2.6 - Users Guide - Page 9
  576.  
  577.  
  578.                   VARIABLES AVAILABLE WHEN USING PCBOARD.SYS
  579.                   ==========================================
  580.  
  581.         ALLOWEDBYTES#             Allowed D/L bytes from the PWRD file.
  582.                                   This number has already been multipled
  583.                                   by 1024 so it will be in actual bytes
  584.                                   rather than Kilobytes allowed.
  585.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  586.       * BAUDOPEN$                 Port opening BPS
  587.       * BBSSYS$                   Name of the BBS
  588.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  589.       * CALLERSLOC$               Location of CALLERSx log
  590.         CHATSTATUS$               Chat mode status. "U" or "A"
  591.       * CITY$                     Callers city and state
  592.       * CNAMESLOC$                Location of CNAMES
  593.       * COMPORT%                  COM port number
  594.         CONFREG$                  Conferences registered in
  595.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  596.         DOWNLOADS%                Number of downloads made
  597.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  598.         EXENAME$                  Name of .EXE (Programmer supplied)
  599.         EXPERT$                   Expert mode - "Y" or "N"
  600.         EXPIRE$                   Callers expiration date
  601.       * FIRST$                    Callers first name
  602.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  603.                                   Determines if the caller is ANSI compatible
  604.                                   If your door requires the use of cursor
  605.                                   positioning and GRAPHICS% = 0 then you
  606.                                   should kick him back out of the door.
  607.       * HPHONE$                   Callers home phone number
  608.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  609.         LEVEL&                    Callers security level
  610.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  611.       * LOGONHRS$                 Time caller logged on in HH:MM format
  612.       * LOGONMINS%                Time caller logged on in minutes
  613.         MODE%                     0 = Non-color, -1 = color is on. Default
  614.                                   is the BBS setting. You may force color
  615.                                   by setting this to -1.
  616.       * NAME$                     Callers full name
  617.       * NETWORK%                  1 = BBS is networked, 0 = no network
  618.       * NODENUM%                  Node number
  619.         OWNER$                    Name DoorFrame is registered to (if any).
  620.         PASSWORD$                 Password of caller
  621.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  622.         PAGELEN%                  Callers page length
  623.       * PCBDAT$                   Location of PCBOARD.DAT
  624.       * PCBOARD%                  1 = PCBoard, 0 = non-PCBoard
  625.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  626.         PROGNAME$                 Name of DOOR (Programmer supplied)
  627.         PROTOCOL$                 Caller's default protocol (Z, X, etc.)
  628.         RESPONSE$                 Returned after a CALL to IN.PUT
  629.         SERIAL$                   Your DoorFrame serial #. String variable.
  630.       * SYSLOC$                   Location of system file. This contains the
  631.                                   path/filename of line 1 in the .CFG file.
  632.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  633.       * SYSOPFIRST$               Sysops first name
  634.         SYSOPFLAG$                " ", "N"=Sysop Next, "X"=Exit to DOS
  635.       * SYSOPLAST$                Sysops last name
  636.       * SYSOPNAME$                Sysops first and last names
  637.  
  638.  
  639. DOORFRAME v2.6 - Users Guide - Page 10
  640.  
  641.  
  642.         TIMEADJUST%               Use to adjust the callers remaining time
  643.                                   online. This variable adjusts the ELAPSED
  644.                                   time so if you wish to decrease his time,
  645.                                   give this a positive value.
  646.       * TIMEALWD%                 Minutes caller is allowed
  647.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  648.                                   calculates this so changing it has no effect
  649.       * TIMENOW%                  Current time in minutes (0 - 1440)
  650.       * TIMESON%                  Number of times on system
  651.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  652.                                   not specified. Has a minimum of one min.
  653.                                   No limit on maximum. 
  654.       * TIMEUSED%                 Time used so far today in minutes
  655.         UPLOADS%                  Number of uploads made
  656.       * USERCOMMENT$              User maintained comment
  657.       * USERSLOC$                 Location of USERS file
  658.       * USERNUM%                  Record number of caller
  659.         VERSION$                  DOOR version # (Programmer supplied)
  660.       * WPHONE$                   Callers work phone number
  661.  
  662. NOTES: Variables marked with '*' are provided for information only.
  663.  
  664.  
  665. DOORFRAME v2.6 - Users Guide - Page 11
  666.  
  667.  
  668.                    VARIABLES AVAILABLE WHEN USING USERS.SYS
  669.                    ========================================
  670.  
  671.         When using USERS.SYS, all variables contained in PCBOARD.SYS may
  672.         be used plus the following additional variables.
  673.  
  674.         DAILYDNLDBYTES&          Bytes downloaded so far today.
  675.         DELETEFLAG%              1 = delete this record, 0 = keep
  676.         EXPIREDLEVEL&            Expired Security level
  677.         LASTCONF%                Conference number last in.
  678.         LASTTIMEON$              Last time caller was on
  679.         MSGS.LEFT%               Number of messages posted
  680.         MSGS.READ%               Number of messages read
  681.         PCB.VERSION%             PCBoard version number (i.e. 1450)
  682.         TOTDNLDBYTES&            Total number of BYTES downloaded
  683.         TOTUPLDBYTES&            Total number of BYTES uploaded
  684.  
  685. NOTES: These variables are all passed back to PCBoard.
  686.  
  687.  
  688. DOORFRAME v2.6 - Users Guide - Page 12
  689.  
  690.  
  691.                     VARIABLES AVAILABLE WHEN USING DOOR.SYS
  692.                     =======================================
  693.  
  694.         ALIAS$                    Callers alias/handle
  695.       * ANSISUPPORT$              Caller supports ANSI but in NG mode
  696.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  697.       * BAUDOPEN$                 Port opening BPS
  698.       * BBSCOLOR%                 BBS default color code (1-15)
  699.       * BBSSYS$                   Name of the BBS
  700.         BIRTHDATE$                Callers date of birth
  701.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  702.       * CITY$                     Callers city and state
  703.       * COMPORT%                  COM port number (1 - 4).
  704.         CONFREG$                  Conferences registered in
  705.         DAILY.BYTES.ALWD#         Daily download max. K limit
  706.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  707.         DOORS.OPENED%             Number of Doors caller has opened
  708.         DOWNLOADS%                Number of downloads made
  709.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  710.         EXENAME$                  Name of .EXE (Programmer supplied)
  711.         EXFROM%                   Conference exited to Door from.
  712.         EXPERT$                   Expert mode - "Y" or "N"
  713.         EXPIRE$                   Callers expiration date
  714.       * EVENT$                    Event time (hh:mm)
  715.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  716.                                   Determines if the caller is ANSI compatible
  717.                                   If your door requires the use of cursor
  718.                                   positioning and GRAPHICS% = 0 then you
  719.                                   should kick him back out of the door.
  720.       * HPHONE$                   Callers home phone number
  721.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  722.         LASTSCAN$                 Date of last directory/new files scan.
  723.         LEVEL&                    Callers security level
  724.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  725.       * LOGONHRS$                 Time caller logged on in HH:MM format
  726.       * LOGONMINS%                Time caller logged on in minutes
  727.         MAX.FILES%                Maximum daily files available
  728.         MINSCREDIT%               Time credits in minutes
  729.         MODE%                     0 = Non-color, -1 = color is on. Default
  730.                                   is the BBS setting. You may force color
  731.                                   by setting this to -1.
  732.         MSGS.LEFT%                Total messages left
  733.       * NAME$                     Callers full name
  734.       * NETWORK%                  1 = BBS is networked, 0 = no network
  735.       * NODENUM%                  Node number
  736.         NUM.DL.TODAY%             Files downloaded so far today
  737.         OWNER$                    Name DoorFrame is registered to (if any).
  738.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  739.         PAGELEN%                  Callers page length
  740.       * PARITY%                   Parity (word length?) (7 or 8)
  741.         PASSWORD$                 Password of caller
  742.       * PATHGEN$                  Path to the GEN directory
  743.       * PATHMAIN$                 Path to the MAIN directory
  744.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  745.         PROGNAME$                 Name of DOOR (Programmer supplied)
  746.         PROTOCOL$                 Callers default protocol (Z, X, etc)
  747.         RESPONSE$                 Returned after a CALL to IN.PUT
  748.  
  749.  
  750. DOORFRAME v2.6 - Users Guide - Page 13
  751.  
  752.  
  753.         SECREM$                   Number of seconds remaining this call.
  754.         SERIAL$                   Your DoorFrame serial #. String variable.
  755.       * SYSLOC$                   Location of system file. This contains the
  756.                                   path/filename of line 1 in the .CFG file.
  757.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  758.       * SYSOPFIRST$               Sysops first name
  759.       * SYSOPLAST$                Sysops last name
  760.       * SYSOPNAME$                Sysops first and last names
  761.         TIMEADJUST%               Use to adjust the callers remaining time
  762.                                   online. This variable adjusts the ELAPSED
  763.                                   time so if you wish to decrease his time,
  764.                                   give this a positive value.
  765.       * TIMELASTCALL$             Time of last call (hh:mm)
  766.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  767.                                   calculates this so changing it has no effect
  768.       * TIMENOW%                  Current time in minutes (0 - 1440)
  769.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  770.                                   not specified. Has a minimum of one min.
  771.                                   No limit on maximum. 
  772.       * TIMESON%                  Number of times on system
  773.       * TIMEUSED%                 Time used so far today in minutes
  774.         TOTAL.BYTES.TODAY#        Daily download K total
  775.         TOTAL.KB.DL#              Total K bytes downloaded
  776.         TOTAL.KB.UL#              Total K bytes uploaded
  777.         UPLOADS%                  Number of uploads made
  778.       * USERCOMMENT$              User maintained comment
  779.       * USERNUM%                  Record number of caller
  780.         VERSION$                  DOOR version # (Programmer supplied)
  781.       * WPHONE$                   Callers work phone number
  782.  
  783. NOTES: Variables marked with '*' are provided for information only.
  784.  
  785.  
  786. DOORFRAME v2.6 - Users Guide - Page 14
  787.  
  788.  
  789.                   VARIABLES AVAILABLE WHEN USING USERINFO.DAT
  790.                   ===========================================
  791.  
  792.       * ACTIVE.MENU%              0=Main, 1=Msg, 2=File, 3=Sysop
  793.         ALIAS$                    Callers alias/handle
  794.       * ANSISUPPORT$              'Y' or 'N' for ANSI enabled.
  795.         BANKED.TIME%              Banked time. (DLT - MaxLogOn)
  796.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  797.       * COMMAND.LINE$             Started with a CommandLine switch. Y or N.
  798.       * DATABITS$                 Databits, 7 or 8.
  799.       * DOOR.LOGOFF$              Y or N. Set to Y if caller logged off from
  800.                                   inside the door.
  801.         DOOR.DL&                  Number of files DL'ed in the door.
  802.         DOOR.KB&                  Downloads in K, add to daily and total bytes
  803.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  804.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  805.       * NAME$                     Callers full name
  806.         SEC.LEVEL.NAME$           Security level name.
  807. NOTES: Variables marked with '*' are provided for information only.
  808.        All other variables are taken from the DOOR.SYS file.
  809.  
  810.  
  811.                   VARIABLES AVAILABLE WHEN USING DORINFOx.DEF
  812.                   ===========================================
  813.  
  814.       * BAUDRATE$                 Baud rate and parity of caller.
  815.                                   Ex. 2400 BAUD,N,8,1
  816.                                   NOTE: RBBS adds baud rate of BBS.
  817.       * BBSSYS$                   Name of the BBS
  818.       * CITY$                     Callers city and state
  819.       * COMPORT%                  COM port number (1 - 4).
  820.         DISPLAY%                  Defaults to -1 (ON).
  821.       * DORINFO13TH$              13th line available only on RBBS systems.
  822.         EXENAME$                  Name of .EXE (Programmer supplied)
  823.       * FIRST$                    Callers first name
  824.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  825.                                   Determines if the caller is ANSI compatible
  826.                                   If your door requires the use of cursor
  827.                                   positioning and GRAPHICS% = 0 then you
  828.                                   should kick him back out of the door.
  829.                                   Use DETECT.ANSI to determine this.
  830.       * LAST$                     Callers last name
  831.       * LASTON$                   Default 01-01-80 (not provided in DORINFO)
  832.         LEVEL&                    Callers security level
  833.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  834.         MODE%                     0 = Non-color, -1 = color is on. Default
  835.                                   is the BBS setting. You may force color
  836.                                   by setting this to -1.
  837.       * NAME$                     Callers full name
  838.         NETWORK$                  Network type. DoorFrame reads/writes as is.
  839.       * NODENUM%                  Number of this Node.
  840.         OWNER$                    Name DoorFrame is registered to (if any).
  841.         PROGNAME$                 Name of DOOR (Programmer supplied)
  842.         RESPONSE$                 Returned after a CALL to IN.PUT
  843.         SERIAL$                   Your DoorFrame serial #. String variable.
  844.       * SYSLOC$                   Location of system file. This contains the
  845.                                   path/filename of line 1 in the .CFG file.
  846.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  847.       * SYSOPFIRST$               Sysops first name
  848.       * SYSOPLAST$                Sysops last name
  849.       * SYSOPNAME$                Sysops first and last names
  850.  
  851.  
  852. DOORFRAME v2.6 - Users Guide - Page 15
  853.  
  854.         TIMEADJUST%               Use to adjust the callers remaining time
  855.                                   online. This variable adjusts the ELAPSED
  856.                                   time so if you wish to decrease his time,
  857.                                   give this a positive value.
  858.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  859.                                   calculates this so changing it has no effect
  860.       * TIMENOW%                  Current time in minutes (0 - 1440)
  861.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  862.                                   not specified. Has a minimum of one min.
  863.                                   No limit on maximum. 
  864.       * TIMESON%                  Defaults to 1 (Not provided in DORINFO)
  865.       * TIMEUSED%                 Time used so far today in minutes
  866.  
  867. NOTES: Variables marked with '*' are provided for information only.
  868.  
  869.  
  870.  
  871.                   VARIABLES AVAILABLE WHEN USING CALLINFO.BBS
  872.                   ===========================================
  873.  
  874.       * ALREADYCONNECTED$         "TRUE" or "FALSE"
  875.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  876.       * BBSSYS$                   Name of the BBS
  877.       * CITY$                     Callers city and state
  878.       * COMPORT%                  COM port number (1 - 4).
  879.         CONFREG$                  Conferences registered in (ABCD etc.)
  880.       * CONSOLE$                  "LOCAL" or "REMOTE"
  881.         DAILY.BYTES.ALWD#         Daily download max. K limit
  882.       * DATABITS$                 7 or 8
  883.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  884.       * DOORNUMBER$               BBS number of this door?
  885.         EXENAME$                  Name of .EXE (Programmer supplied)
  886.       * ENTERDOOR$                Time caller entered door in HH:MM format.
  887.       * FIRST$                    Callers first name
  888.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  889.                                   Determines if the caller is ANSI compatible
  890.                                   If your door requires the use of cursor
  891.                                   positioning and GRAPHICS% = 0 then you
  892.                                   should kick him back out of the door.
  893.                                   Use DETECT.ANSI to determine this.
  894.       * LAST$                     Callers last name
  895.         LASTMSG$                  Last message read
  896.       * LASTONDATE$               Date and time of last call
  897.         LEVEL&                    Callers security level
  898.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  899.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  900.       * LOGONHRS$                 Time caller logged on in HH:MM format
  901.         MODE%                     0 = Non-color, -1 = color is on. Default
  902.                                   is the BBS setting. You may force color
  903.                                   by setting this to -1.
  904.       * MNP$                      "MNP/ARQ Connection" or "Normal Connection"
  905.       * NAME$                     Callers full name
  906.         NUM.DL.TODAY%             Files downloaded so far today
  907.  
  908.  
  909. DOORFRAME v2.6 - Users Guide - Page 16
  910.  
  911.         OWNER$                    Name DoorFrame is registered to (if any).
  912.         PASSWORD$                 Password of caller
  913.         PROGNAME$                 Name of DOOR (Programmer supplied)
  914.         RESPONSE$                 Returned after a CALL to IN.PUT
  915.         SERIAL$                   Your DoorFrame serial #. String variable.
  916.       * SYSLOC$                   Location of system file. This contains the
  917.                                   path/filename of line 1 in the .CFG file.
  918.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  919.       * SYSOPFIRST$               Sysops first name
  920.       * SYSOPLAST$                Sysops last name
  921.       * SYSOPNAME$                Sysops first and last names
  922.         TIMEADJUST%               Use to adjust the callers remaining time
  923.                                   online. This variable adjusts the ELAPSED
  924.                                   time so if you wish to decrease his time,
  925.                                   give this a positive value.
  926.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  927.                                   calculates this so changing it has no effect
  928.       * TIMENOW%                  Current time in minutes (0 - 1440)
  929.       * TIMEOFF$                  Time caller exited from the door.
  930.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  931.                                   not specified. Has a minimum of one min.
  932.                                   No limit on maximum. 
  933.       * TIMEUSED%                 Time used so far today in minutes
  934.       * USERNUM%                  Record number of caller
  935.  
  936. NOTES: Variables marked with '*' are provided for information only.
  937.  
  938.  
  939. DOORFRAME v2.6 - Users Guide - Page 17
  940.  
  941.  
  942.                   VARIABLES AVAILABLE WHEN USING SFDOORS.DAT
  943.                   ==========================================
  944.  
  945.         ANSION$                   "TRUE" or "FALSE"
  946.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  947.       * BBSDIR$                   Spitfire's home directory
  948.       * BBSSYS$                   Name of the BBS
  949.       * CITY$                     Callers city and state
  950.       * COMPORT%                  COM port number (1 - 4).
  951.         DAILY.BYTES.ALLOWED#      Maximum download BYTES per day
  952.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  953.         DLPERDAY%                 Number of downloads allowed per day
  954.         DLTODAY%                  Number of downloads made today
  955.         DOWNLOADS%                Number of downloads made
  956.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  957.         EXENAME$                  Name of .EXE (Programmer supplied)
  958.         EXTRATIME&                Number of seconds gained since logon
  959.       * FIRST$                    Callers first name
  960.       * FRONTEND$                 "TRUE" or "FALSE" if booted from a
  961.                                   front end program.
  962.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  963.                                   Determines if the caller is ANSI compatible
  964.                                   If your door requires the use of cursor
  965.                                   positioning and GRAPHICS% = 0 then you
  966.                                   should kick him back out of the door.
  967.                                   Use DETECT.ANSI to determine this.
  968.       * HPHONE$                   Callers home phone number
  969.       * LAST$                     Callers last name
  970.         LASTMCONF$                Last message conference
  971.         LASTFAREA$                Last file area
  972.         LEVEL&                    Callers security level
  973.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  974.       * LOGONHRS$                 Time caller logged on in HH:MM format
  975.       * LOGONSECS&                Number of seconds since midnight
  976.                                   when caller logged on to the BBS.
  977.       * MAXBAUD$                  Maximum baud of the system
  978.         MODE%                     0 = Non-color, -1 = color is on. Default
  979.                                   is the BBS setting. You may force color
  980.                                   by setting this to -1.
  981.       * NAME$                     Callers full name
  982.       * NODENUM%                  Number of this Node.
  983.       * NODTELOCK$                "TRUE" or "FALSE" if configured for
  984.                                   software data flow control.
  985.         OWNER$                    Name DoorFrame is registered to (if any).
  986.         PASSWORD$                 Password of caller
  987.         PROGNAME$                 Name of DOOR (Programmer supplied)
  988.         RESPONSE$                 Returned after a CALL to IN.PUT
  989.       * SECONDS&                  Number of seconds since midnight
  990.                                   when caller entered the door.
  991.         SERIAL$                   Your DoorFrame serial #. String variable.
  992.       * SYSLOC$                   Location of system file. This contains the
  993.                                   path/filename of line 1 in the .CFG file.
  994.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  995.       * SYSOPFIRST$               Sysops first name
  996.       * SYSOPLAST$                Sysops last name
  997.       * SYSOPNAME$                Sysops first and last names
  998.         SYSOPNEXT$                "TRUE" or "FALSE"
  999.  
  1000. NOTES: Variables marked with '*' are provided for information only.
  1001.  
  1002.  
  1003. DOORFRAME v2.6 - Users Guide - Page 18
  1004.  
  1005.  
  1006.         TIMEADJUST%               Use to adjust the callers remaining time
  1007.                                   online. This variable adjusts the ELAPSED
  1008.                                   time so if you wish to decrease his time,
  1009.                                   give this a positive value.
  1010.       * TIMEALWD%                 Minutes caller is allowed
  1011.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  1012.                                   calculates this so changing it has no effect
  1013.       * TIMENOW%                  Current time in minutes (0 - 1440)
  1014.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  1015.                                   not specified. Has a minimum of one min.
  1016.                                   No limit on maximum. 
  1017.       * TIMEUSED%                 Time used so far today in minutes
  1018.  
  1019.         TOTAL.BYTES.TODAY#        BYTES downloaded so far today
  1020.         TOTAL.KB.DL#              Total K bytes downloaded
  1021.         TOTAL.KB.UL#              Total K bytes uploaded
  1022.         UPLOADS%                  Number of uploads made
  1023.       * USERNUM%                  Record number of caller
  1024.  
  1025. NOTES: Variables marked with '*' are provided for information only.
  1026.  
  1027.  
  1028. DOORFRAME v2.6 - Users Guide - Page 19
  1029.  
  1030.  
  1031.                    VARIABLES AVAILABLE WHEN USING CHAIN.TXT
  1032.                    ========================================
  1033.  
  1034.         AGE$                      Caller's age
  1035.         ALIAS$                    Callers alias/handle
  1036.       * BBSSYS$                   Name of the BBS
  1037.       * CALLSIGN$                 HAM radio call sign
  1038.         COLUMNS$                  Caller's screen width
  1039.       * COMPORT%                  COM port number (1 - 4).
  1040.         COSYSOP%                  1 if Caller is co-Sysop, 0 if not
  1041.       * DATADIR$                  System DATA directory
  1042.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  1043.         DOWNLOADS%                Number of downloads made
  1044.         EXENAME$                  Name of .EXE (Programmer supplied)
  1045.       * FIRST$                    Callers first name
  1046.       * GFILESDIR$                System GFILES directory
  1047.         GOLD$                     Caller's gold (?)
  1048.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  1049.                                   Determines if the caller is ANSI compatible
  1050.                                   Use DETECT.ANSI to determine this.
  1051.       * LAST$                     Callers last name
  1052.       * LASTON$                   Date caller last logged on (MM/DD/YY)
  1053.         LEVEL&                    Callers security level
  1054.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  1055.       * LOG$                      System LOG of the day
  1056.       * LOGONSECS&                Number of seconds since midnight
  1057.                                   when caller logged on to the BBS.
  1058.         MODE%                     0 = Non-color, -1 = color is on. Line 14
  1059.                                   of CHAIN.TXT determines this setting.
  1060.       * NAME$                     Callers full name
  1061.       * NODENUM%                  Defaults to 1 (not provided in CHAIN.TXT)
  1062.         OWNER$                    Name DoorFrame is registered to (if any).
  1063.         PAGELEN%                  Callers page length
  1064.         PARITY$                   "8N1" etc.
  1065.         PROGNAME$                 Name of DOOR (Programmer supplied)
  1066.         RESPONSE$                 Returned after a CALL to IN.PUT
  1067.         SERIAL$                   Your DoorFrame serial #. String variable.
  1068.         SEX$                      Callers sex
  1069.       * SYSLOC$                   Location of system file. This contains the
  1070.                                   path/filename of line 1 in the .CFG file.
  1071.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  1072.       * SYSOPFIRST$               Sysops first name
  1073.       * SYSOPLAST$                Sysops last name
  1074.       * SYSOPNAME$                Sysops first and last names
  1075.         TIMEADJUST%               Use to adjust the callers remaining time
  1076.                                   online. This variable adjusts the ELAPSED
  1077.                                   time so if you wish to decrease his time,
  1078.                                   give this a positive value.
  1079.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  1080.                                   calculates this so changing it has no effect
  1081.       * TIMENOW%                  Current time in minutes (0 - 1440)
  1082.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  1083.                                   not specified. Minimum 1 min. 
  1084.       * TIMEUSED%                 Time used so far today in minutes
  1085.         TOTAL.KB.DL#              Total K bytes downloaded
  1086.         TOTAL.KB.UL#              Total K bytes uploaded
  1087.         UPLOADS%                  Number of uploads made
  1088.       * USERNUM%                  Record number of caller
  1089.  
  1090. NOTES: Variables marked with '*' are provided for information only.
  1091.  
  1092. DOORFRAME v2.6 - Users Guide - Page 20
  1093.  
  1094.  
  1095.                                 MISCELLANEOUS NOTES
  1096.                                 ===================
  1097.  
  1098. DoorFrame requires DOS 3.x and up since all files are opened in SHARED mode.
  1099.  
  1100. When using PCBOARD.SYS, DoorFrame requires that PCBOARD.DAT be in the same
  1101. directory as PCBOARD.SYS. DoorFrame also accesses the USERS file.
  1102.  
  1103. When using USERS.SYS, DoorFrame also accesses PCBOARD.SYS, PCBOARD.DAT and the 
  1104. USERS file.
  1105.  
  1106. The DOOR.SYS used by DoorFrame is the standard 52 line GAP (tm) file.
  1107.  
  1108. The CALLINFO.BBS used by DoorFrame currently contains 36 lines.
  1109.  
  1110. Trapping errors
  1111. ---------------
  1112.  If you wish to utilize the internal error trapping, insert the following
  1113.  line wherever you wish the trapping to begin. I would suggest putting it
  1114.  right after you call INITIALIZE.
  1115.  
  1116.    ON ERROR GOTO ERR.ROUTINE
  1117.  
  1118.  Then at the very end of your program insert the following:
  1119.  
  1120.    ERR.ROUTINE:
  1121.    ERRORS ERR, ERL
  1122.    END
  1123.  
  1124.  If ANY Basic error is encountered, it will branch to ERR.ROUTINE and call
  1125.  the ERRORS subroutine. The error will be printed to the screen and written
  1126.  to DFRAME.ERR. Your Door will then exit back to the BBS.
  1127.  
  1128. The first few lines of your Door should be:
  1129.    ' $INCLUDE: 'DFRAME.INC'
  1130.    PROGNAME$ = "Name of the Door"
  1131.    VERSION$ = " v1.0"
  1132.    EXENAME$ = "FILENAM"           <- NOTE: Max of 7 letters!
  1133.    TIMEOUT% = 240                 <- Numbers of seconds to wait for keyboard
  1134.                                      activity. 240 will wait for 4 minutes
  1135.                                      then send a Keyboard Timeout msg. and
  1136.                                      exit back to the BBS. Defaults to 300.
  1137.    OWNER$ = "Your Name"           <- For registered DoorFrame users only.
  1138.    SERIAL$ = "99999"              <- DoorFrame will display an EVALUATION
  1139.                                      COPY message until registered.
  1140.    INITIALIZE
  1141.    .
  1142.    .
  1143.    Your code.......
  1144.    .
  1145.    .
  1146.    MAKE.BLT HI.SCORE#            <- If you want one generated.
  1147.    SHOW.BLT                      <- If you want to show it before door closes.
  1148.    EXIT.DOOR "Y"
  1149.  
  1150. The configuration filename passed on the command line is OPENed as #1. This
  1151. file is left open so you may read additional lines from the .CNF file. 
  1152. Although it is not absolutely necessary, you should CLOSE #1 somewhere near
  1153. the start of your program.
  1154.  
  1155.